2.7.1日志模式 1、可以通过sqlite3PagerSetJournalMode()函数在pager中设置日志的模式eMode,其中包括: ①journalMode==页面日志模式删除(delete) ②journalMode==页面日志模式截断(truncate) ③journalMode==页面日志模式存留(persist) ④journalMode==页面日志模式关闭(off) ⑤journalMode==页面日志模式存储(memory) ⑥journalMode==页面日志模式预写式日志(wal) 如果有下列两种情况中的任意一种,日志模式不允许改变: 一个内存数据库可以直邮他的日志模式设置_off或者_memory。 临时数据库不能有_wal日志模式。 否则日志模式一般被sqlite3PagerSetJournalMode()设为特定值,并通过sqlite3PagerGetJournalMode()返回指出当前(可能更新的)的日志模式。 2、如果页面在改变日志模式赋值OK的状态下返回真。日志模式可以在数据库没有模式化的时候发生改变。 2.7.2 日志大小 用sqlite3PagerJournalSizeLimit()函数得到/设置日志文件不变的大小限制;如果赋值为-1意味着没有限制被执行,如果小于-1就表示尝试是空操作。 2.7.3 日志文件格式: ①8字节的前缀。 ②高位4个字节的整数是日志文件有效页的数量。 ③高位4个字节的整数是完整性检查的初始值。 ④高位4个字节的整数是截短的数据库页面的数量。 ⑤高位4个字节的整数是扇区大小。 ⑥高位4个字节的整数是页面大小。 ⑦下个扇区大小填充为0。